]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
endSessionDialog: Use registered D-Bus error
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 31 Jan 2024 16:44:05 +0000 (17:44 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 31 Jan 2024 19:58:31 +0000 (20:58 +0100)
Instead of returning ad-hoc errors, register a custom error domain
and return appropriate GLib.Errors.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3159>

js/misc/dbusErrors.js
js/ui/endSessionDialog.js

index 5e4d62e2c4f59317f2095d915dee7e355b238064..f59add3143acc4887d8aabf91e510740465a199f 100644 (file)
@@ -1,4 +1,3 @@
-/* eslint-disable no-unused-vars */
 import GLib from 'gi://GLib';
 import Gio from 'gi://Gio';
 
@@ -27,3 +26,11 @@ function createErrorEnum(errorNames) {
     }
     return obj;
 }
+
+const modalDialogErrorNames = [
+    'UnknownType',
+    'GrabFailed',
+];
+export const ModalDialogErrors =
+    registerErrorDomain('ModalDialog', modalDialogErrorNames);
+export const ModalDialogError = createErrorEnum(modalDialogErrorNames);
index d133c38c08fa02a2d8a41327764784bd71019e5e..6f5aadd7cdb564936c66d384e7b065958554ffa7 100644 (file)
@@ -34,6 +34,8 @@ import * as LoginManager from '../misc/loginManager.js';
 import * as ModalDialog from './modalDialog.js';
 import * as UserWidget from './userWidget.js';
 
+import {ModalDialogErrors, ModalDialogError} from '../misc/dbusErrors.js';
+
 import {loadInterfaceXML} from '../misc/fileUtils.js';
 
 const _ITEM_ICON_SIZE = 64;
@@ -739,8 +741,8 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
         this._sessionSection.list.destroy_all_children();
 
         if (!(this._type in DialogContent)) {
-            invocation.return_dbus_error(
-                'org.gnome.Shell.ModalDialog.TypeError',
+            invocation.return_error_literal(ModalDialogErrors,
+                ModalDialogError.UNKNOWN_TYPE,
                 'Unknown dialog type requested');
             return;
         }
@@ -773,8 +775,8 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
         this._updateButtons();
 
         if (!this.open(timestamp)) {
-            invocation.return_dbus_error(
-                'org.gnome.Shell.ModalDialog.GrabError',
+            invocation.return_error_literal(
+                ModalDialogError.GRAB_FAILED,
                 'Cannot grab pointer and keyboard');
             return;
         }